$(document).ready(
    function()
    {
        $(window).resize(
            function()
            {
                $('#espDisable').css("height",$(document).height());
                $('#espDisable').css("width",$(document).width());
                $('#espDisable2').css("height",$(document).height());
                $('#espDisable2').css("width",$(document).width());
                $('.popUp').css("top", ($(window).height() - $('.popUp').outerHeight()) / 2 + $(window).scrollTop() + "px");
                $('.popUp').css("left", ($(window).width() - $('.popUp').outerWidth()) / 2 + $(window).scrollLeft() + "px");
            }
        );
        $('.popUp').each(
            function()
            {
                $(this).css("top", ($(window).height() - $(this).outerHeight())
                    / 2 + $(window).scrollTop() + "px");
                $(this).css("left", ($(window).width() - $(this).outerWidth())
                    / 2 + $(window).scrollLeft() + "px");
            }
        );
        confirmeSupp = false;
        $('.unMessage:odd').addClass('impair');
        // On détermine l'image pour la prochaine et la dernière page
        var num = $('#numPage').val();
        if(num <= 1)
        {
            $('#prevMessages').attr('src', 'Images/prev_disabled.png');
            $('#prevMessages').removeClass('pointer');
        }
        if($('#totMessages').val() <= ($('#numPage').val() * 20))
        {
            $('#nextMessages').attr('src', 'Images/next_disabled.png')
            $('#nextMessages').removeClass('pointer');
        }


        // Fonction pour cocher tous les messages lorsqu'on coche le checkbox général
        $('#chkTout').change(function()
        {
            if($(this).is(':checked'))
            {
                $('.chkMessage').each(
                    function()
                    {
                        $(this).attr('checked', true);
                    }
                ); 
            }
            else
            {
                $('.chkMessage').each(
                    function()
                    {
                        $(this).attr('checked', false);
                    }
                ); 
            }
        });

        // Fonction pour décocher le checkbox général
        $('.chkMessage').change(
            function()
            {
                if(!($(this).is(':checked')))
                {
                    $('#chkTout').attr('checked', false);
                }
            }
        );

        // Fonction pour faire apparaître le message qu'on sélectionne
        $('.titreMessage').click(
            function()
            {
                var idMessage = $(this).attr('id');
                var envoyeur = '#envoyeur' + idMessage;
                var message = '#msg' + idMessage;
                var idUtilisateur = $('#idUtilisateur').val();
                var elemImgLu = '#msgLu' + idMessage;

                $('#idMessage').attr('text', idMessage)
                $('#titreLecture').html('Titre: ' + $(this).html() + '<span id="annulerLecture" class="pointer annulerLecture right">[x]</span>');
                $('#envoyeurLecture').html('Envoyeur: ' + $(envoyeur).html() + '<br/>');
                $('#areaLecture').html($(message).attr('value'));

                // On ajoute la fonction pour annuler la lecture
                $('.annulerLecture').click(
                    function()
                    {
                        $('#espLecture').fadeOut(250);
                        $('#espDisable').hide();
                    }
                );

                //On va mettre le message comme lu dans la base de données
                lireMessageInterne(idUtilisateur, idMessage);
                // On affiche l'espace de lecture
                $('#espLecture').fadeIn(250);
                $('#espDisable').show();
                $(elemImgLu).attr('src', 'Images/email_open.png');
            }
        );

        // Fonction pour fermer la fenêtre de lecture de message
        $('.annulerLecture').click(
            function()
            {
                $('#espLecture').fadeOut(250);
                $('#espDisable').hide();
            }
        );

        $('#btnSupprimerLecture').click(
            function()
            {
                confirmeSupp = confirm('Êtes-vous sûr de vouloir supprimer ce message?');
                if(confirmeSupp)
                {
                    var id = $('#idMessage').attr('text');
                    $('#chk' + id).attr('checked', true)
                    $('#btnAnnulerLecture').click();
                    $('#btnSupprimerMessages').click();
                }
            }
        );

        // Fonction qui va vérifier si la suppression est valide et qui va l'exécuter
        $('#btnSupprimerMessages').click(
            function()
            {
                var valide = false;
                $('.chkMessage').each(
                    function()
                    {
                        if($(this).is(':checked'))
                        {
                            valide = true;
                        }
                    }
                );
                if(!valide)
                {
                    alert('Vous devez cocher au moins un message');
                }
                else
                {
                    // Si la suppression n'a pas déjà été confirmée, on fait la demande de confirmation
                    if(!confirmeSupp)
                    {
                        confirmeSupp = confirm('Êtes-vous sûr de vouloir supprimer ces messages?');
                    }

                    // Si la suppression est confirmée, on l'exécute
                    if(confirmeSupp)
                    {
                        $('#formMessages').submit();
                    }
                }
            }
        );

        // Fonction qui ouvre la fenêtre d'envoi de message 
        $('#btnNouveauMessage').click(
            function()
            {
                $('#destinataires').html('');
                $('#choixRecherche').html('');
                $('#areaEcriture').html('');
                $('#titreEcriture').val('');
                $('#compteurTitre').html('0');    
                $('#compteurMessage').html('0');    

                $('#espEcriture').fadeIn(250);
                $('#espEcriture').css("top", ($(window).height() - $('#espEcriture').outerHeight()) / 2 + $(window).scrollTop() + "px");
                $('#espEcriture').css("left", ($(window).width() - $('#espEcriture').outerWidth()) / 2 + $(window).scrollLeft() + "px");
                $('#espDisable').css("height",$(document).height());
                $('#espDisable').css("width",$(document).width());
                $('#espDisable').show();
            }
        );

        // Fonction pour fermer la fenêtre d'écriture de message
        $('.annulerEcriture').click(
            function()
            {
                $('#destinataires').html('');
                $('#choixRecherche').html('');
                $('#areaEcriture').html('');
                $('#titreEcriture').val('');

                $('#espEcriture').fadeOut(250);
                $('#espDisable').hide();
            }
        );

        // Fonction qui emêche d'écrire plus de caractères que le maximum permis pour le titre
        $('#titreEcriture').keydown(
            function(e)
            {
                var longueur = $(this).val().length;
                if((e.keyCode == 8 || e.keyCode == 127) && e.keyCode != 127 && longueur != 0)
                {
                    longueur--;
                } else if(e.keyCode > 31)
                {
                    longueur++;
                }
                $('#compteurTitre').html(longueur);
            }
        );

        // Fonction qui emêche d'écrire plus de caractères que le maximum permis pour le message
        $('#areaEcriture').keydown(
            function(e)
            {
                var longueur = $(this).val().length;
                if((e.keyCode == 8 || e.keyCode == 127) && longueur != 0)
                {
                    longueur--;
                } else if(e.keyCode > 31)
                {
                    longueur++;
                }
                $('#compteurMessage').html(longueur);
            }
        );

        // Fonction qui ouvre la fenêtre de recherche de destinataires
        $('#btnDestinataires').click(
            function()
            {
                $('#txtRecherche').val('');
                $('#resultatsRecherche').children().remove();
                $('#espRecherche').fadeIn(250);
                $('#espRecherche').css("top", ($(window).height() - $('#espRecherche').outerHeight()) / 2 + $(window).scrollTop() + "px");
                $('#espRecherche').css("left", ($(window).width() - $('#espRecherche').outerWidth()) / 2 + $(window).scrollLeft() + "px");
                $('#espDisable2').css("height",$(document).height());
                $('#espDisable2').css("width",$(document).width());
                $('#espDisable2').show();
            }
        );

        $('#txtRecherche').keypress(
            function(e)
            {
                if(e.keyCode == 10 || e.keyCode == 13)
                {
                    $('#btnRechercher').click();
                }
            }
        );

        // Fonction qui exécute la recherche selon le critère entré
        $('#btnRechercher').click(
            function()
            {
                if($('#txtRecherche').val().replace(/ /, '') != '')
                { 
                    chercherUsager($('#txtRecherche').val().toLowerCase(), $('#statutRecherche').val());
                }
            }
        );

        // Fonction pour annuler la recherche de destinataire
        $('.annulerRecherche').click(
            function()
            {
                // On enlève les destinataires qui ont été ajoutés
                $('#choixRecherche li').each(
                    function()
                    {
                        var choisi = false;
                        var dest = $(this).attr('id');
                        $('#destinataires li').each(
                            function()
                            {
                                if($(this).attr('id') == dest)
                                {
                                    choisi = true;
                                }
                            }
                        );
                        if(!choisi)
                        {
                            $(this).remove();
                        }
                    }
                );

                $('#espRecherche').fadeOut(250);
                $('#espDisable2').hide();
            }
        );

        //Fonction pour retirer un destinataire de la sélection
        $('#choixRecherche li').click(
            function()
            {
                $(this).remove();
            }
        );

        // Fonction qui ajoute les destinataires choisis au message
        $('#accepterDestinataires').click(
            function()
            {
                var gauche = true;
                var classe = "gauche";

                $('#destinataires').children().remove();

                $('#choixRecherche li').each(
                    function()
                    {
//                      var id = $(this).children("input").attr('id');
//                      alert($(this).html());
//                      alert(id);
//                      alert($('#' + id).attr('name'));
                        if(gauche)
                        {
                            classe = "left";
                            gauche = false;
                        } 
                        else 
                        {
                            classe = "right";
                            gauche = true;
                        }
//                      alert('classe:' + classe + '\nid:' + $('#' + id).val());
                        $('#destinataires').append('<li "class="' + classe  + '">' + $(this).html().replace(/choix/, 'dest').replace(/choix_/, 'dest_') +
//                      $(this).val() + '<input type=hidden name=dest_"' + $('#' + id).val() +
//                      ' " value="' + $(this).attr('id') + '"/>\n\
                        '</li>');
                    }
                );

                $('#espRecherche').fadeOut(250);
                $('#espDisable2').hide();
            }
        );

        // Fonction qui envoi le message selon les informations entrées
        $('#btnEnvoyer').click(
            function()
            {
                var valide = true;
                // On vérifie si tous les champs sont remplis et qu'il y a des destinataires
                var nbDestinataires = $('#destinataires > li').size();
                if(nbDestinataires == 0)
                {
                    valide = false;
                }
                if($('#areaEcriture').html().replace(/ /g,'') == '')
                {
                    valide = false;
                    $('#areaEcriture').addClass('invalide');
                }
                if($('#titreEcriture').val().replace(/ /g, '') == '')
                {
                    valide = false;
                    $('#titreEcriture').addClass('invalide');
                }

                if(valide)
                {
                    $('#msgErreurVide').hide();
                    $('#areaEcriture').removeClass('invalide');
                    $('#titreEcriture').removeClass('invalide');
                    $('#formEnvoiMessage').submit();
                }
                else
                {
                    $('#msgErreurVide').fadeIn(250);
                    $('#msgErreurVide').css("top", ($(window).height() - $('#msgErreurVide').outerHeight()) / 2 + $(window).scrollTop() + "px");
                    $('#msgErreurVide').css("left", ($(window).width() - $('#msgErreurVide').outerWidth()) / 2 + $(window).scrollLeft() + "px");
                }
            }
        );

        // Fonction qui vérifie si le titre est vide
        $('#titreEcriture').blur(
            function()
            {
                if($(this).val().replace(/ /g, '') == '')
                {
                    $(this).addClass('invalide');
                    $('#msgErreurVide').fadeIn(250);
                    $('#msgErreurVide').css("top", ($(window).height() - $('#msgErreurVide').outerHeight()) / 2 + $(window).scrollTop() + "px");
                    $('#msgErreurVide').css("left", ($(window).width() - $('#msgErreurVide').outerWidth()) / 2 + $(window).scrollLeft() + "px");
                }
                else
                {
                    $(this).removeClass('invalide');
                    if($('#areaEcriture').val().replace(/ /g, '') != '')
                    {
                        $('#msgErreurVide').hide();
                    }
                }
            }
        );


        $('#areaEcriture').blur(
            function()
            {
                if($(this).val().replace(/ /g, '') == '')
                {
                    $(this).addClass('invalide');
                    $('#msgErreurVide').fadeIn(250);
                    $('#msgErreurVide').css("top", ($(window).height() - $('#msgErreurVide').outerHeight()) / 2 + $(window).scrollTop() + "px");
                    $('#msgErreurVide').css("left", ($(window).width() - $('#msgErreurVide').outerWidth()) / 2 + $(window).scrollLeft() + "px");
                }
                else
                {
                    $(this).removeClass('invalide');
                    if($('#titreEcriture').val().replace(/ /g, '') != '')
                    {
                        $('#msgErreurVide').hide();
                    }
                }
            }
        );

        // Fonction pour aller, si possible, à la prochaine page de messages 
        $('#prevMessages').click(
            function()
            {
                var numero = $('#numPage').val();
                if(numero > 1)
                {
                    $('#numPage').val(--numero);
                    $('#formChangementPage').submit();
                }
            }
        );

        // Fonction pour aller, si possible, à la page précédente de messages 
        $('#nextMessages').click(
            function()
            {
                var numero = $('#numPage').val();
                if($('#totMessages').val() > ($('#numPage').val() * 20))
                {
                    $('#numPage').val(++numero);
                    $('#formChangementPage').submit();
                }
            }
        );
    }
); // Fin de document.ready